package common;

import java.io.Serializable;
import java.util.Date;

/**
 * This class represents exam execution operation
 *
 */
public abstract class ExamExecution implements Serializable {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = -7696801048298618171L;
	private int definedTime;
	private int actualTime;
	private Date lockTime;
	private Date executionDate;
	private String code;
	private int execTeacherID;

	/**
	 * Default constructor
	 */
	public ExamExecution() {
		
	}
	
	/**
	 * Actual execution time getter
	 * @return Actual execution time in minutes
	 */
	public int getActualTime() {
		return actualTime;
	}
	
	/**
	 * Actual execution time setter
	 * @param actualTime Actual execution time in minutes
	 */
	public void setActualTime(int actualTime) {
		this.actualTime = actualTime;
	}
	
	/**
	 * Lock time getter
	 * @return Time when execution was locked
	 */
	public Date getLockTime() {
		return lockTime;
	}
	
	/**
	 * Lock time setter
	 * @param lockTime Time when execution was locked
	 */
	public void setLockTime(Date lockTime) {
		this.lockTime = lockTime;
	}
	
	/**
	 * Exam execution start time getter
	 * @return Exam execution start time
	 */
	public Date getExecutionDate() {
		return executionDate;
	}
	
	/**
	 * Exam execution start time setter
	 * @param executionDate Exam execution start time
	 */
	public void setExecutionDate(Date executionDate) {
		this.executionDate = executionDate;
	}
	
	/**
	 * Exam execution code getter
	 * @return Exam execution code
	 */
	public String getCode() {
		return code;
	}
	
	/**
	 * Exam execution code setter
	 * @param code Exam execution code
	 */
	public void setCode(String code) {
		this.code = code;
	}
	
	/**
	 * Exam execution defined time getter
	 * @return Exam execution defined time in minutes
	 */
	public int getDefinedTime() {
		return definedTime;
	}
	
	/**
	 * Exam execution defined time setter
	 * @param definedTime Exam execution time in minutes
	 */
	public void setDefinedTime(int definedTime) {
		this.definedTime = definedTime;
	}

	/**
	 * Exam execute teacher Id getter
	 * @return Teacher Id
	 */
	public int getExecTeacherID() {
		return execTeacherID;
	}

	/**
	 * Exam execute teacher Id setter
	 * @param execTeacherID Teacher Id
	 */
	public void setExecTeacherID(int execTeacherID) {
		this.execTeacherID = execTeacherID;
	}	
	
}
